package com.ruoyi.datastatistics.service;

import com.ruoyi.basedata.domain.vo.TerminalsDbProtocol;
import com.ruoyi.datastatistics.domain.Realtimegatherdata;
import com.ruoyi.datastatistics.domain.TerminalHistoryData;
import com.ruoyi.datastatistics.wxentity.MapTerminalInfo;

import java.util.List;

/**
 * 实时数据采集（大）Service接口
 *
 * @author ruoyi
 * @date 2023-09-07
 */
public interface IRealtimegatherdataService {
    /**
     * 查询实时数据采集（大）
     *
     * @param TerminalID 实时数据采集（大）主键
     * @return 实时数据采集（大）
     */
    public Realtimegatherdata selectRealtimegatherdataByTerminalID(String TerminalID);

    /**
     * 查询实时数据采集（大）列表
     *
     * @param realtimegatherdata 实时数据采集（大）
     * @return 实时数据采集（大）集合
     */
    public List<Realtimegatherdata> selectRealtimegatherdataList(Realtimegatherdata realtimegatherdata);

    List<Realtimegatherdata> getRealtimegatherdataListWX(String TerminalID, String TerminalName, String AreaCode, String startTime, String endTime);

    List<Realtimegatherdata> getRealtimegatherdataList(String terminalId, String terminalName,String signPlatform,String[] locationNbs,Integer loginUserId,String sheetsCode,Integer systemFlag,String imei,String tenant_id);

    /**
     * 新增实时数据采集（大）
     *
     * @param realtimegatherdata 实时数据采集（大）
     * @return 结果
     */
    public int insertRealtimegatherdata(Realtimegatherdata realtimegatherdata);

    /**
     * 批量插入
     *
     * @param list
     */
    public void batchinsertRealtimegatherdata(List<Realtimegatherdata> list);

    /**
     * 修改实时数据采集（大）
     *
     * @param realtimegatherdata 实时数据采集（大）
     * @return 结果
     */
    public int updateRealtimegatherdata(Realtimegatherdata realtimegatherdata);

    /**
     * 批量删除实时数据采集（大）
     *
     * @param TerminalIDs 需要删除的实时数据采集（大）主键集合
     * @return 结果
     */
    public int deleteRealtimegatherdataByTerminalIDs(String[] TerminalIDs);

    /**
     * 删除实时数据采集（大）信息
     *
     * @param TerminalID 实时数据采集（大）主键
     * @return 结果
     */
    public int deleteRealtimegatherdataByTerminalID(String TerminalID);

    List<MapTerminalInfo> SearchTerminal(String terminalID, String terminalName, String areaid, String startTime, String endTime);

    void synchronousMostValueFromRealtimegatherdata(TerminalHistoryData t, TerminalsDbProtocol terminalsDb);
}
